# 匿名函数定义,返回结果为一个值
# 变量名 = lambda 参数1, 参数2, ...: 表达式
# 变量名相当于普通函数的函数名
# 使用时直接用:变量名(参数1,参数2,...)
# 1.普通函数实现两个数字求和
# 定义函数
def demo(a, b):
    result = a + b
    # 返回结果
    return result
# 调用函数
print(demo(10, 20))

# 2.匿名函数实现两数求和（简化格式，等价于上面的普通函数）
result = lambda a, b: a + b  # 表达式结果自动返回，无需写return
# 使用匿名函数
print(result(10, 20))



# 1. 已知用户信息数据如下:
user_list = [
    {'name': '张三', 'age': 22, 'title': '测试工程师'},
    {'name': '李四', 'age': 24, 'title': '开发工程师'},
    {'name': '王五', 'age': 21, 'title': '测试工程师'}
]
# 排序:按照人的年龄信息排序
# 参数 key : 必须传入的函数，其作用是描述按照元素的哪个指标排序
# 参数 reverse ： 排序方式（升序/降序）
# 年龄指标取出来？
# 假设给我的第一个字典元素是： x = {'name': '张三', 'age': 22, 'title': '测试工程师'}
# 获取年龄指标？ x['age']  或者  x.get("age")
# 1.需要知道字典的变量名  --> 字典名会变？ --> 变量 --> 参数
# 2.需要返回年龄的值 --> 获取年龄的表达式
# 结论：需要匿名函数实现
keys = lambda x:x.get("age")  # 这个x就是列表的每个元素
# 1.直接进行排序：升序
user_list.sort(key=keys)  # 按get_age返回的年龄值排序
# 打印原始列表
print(user_list)
# 2.降序
user_list.sort(key=keys,reverse=True)
# # 打印原始列表
print(user_list)






